package com.umariana.ClinicaVeterinaria.InterfazGrafica;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class DialogoCrearPropietario extends JDialog implements ActionListener , KeyListener {

	/**
	 * serial
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * panel de contenido
	 */
	private final JPanel panelContenido = new JPanel();
	/**
	 * comando para agregar un propietario
	 */
	private static final String AGREGAR = "AGREGAR";
	/**
	 * comando para cancelar action
	 */
	private static final String CANCELAR = "CANCELAR";
	/**
	 * campo de texto para los nombres del nuevo propietario
	 */
	private JTextField txtNombres;
	/**
	 * campo de texto para los apellidos del nuevo propietario
	 */
	private JTextField txtApellidos;
	/**
	 * campo de texto para la cedula o identificacion  del nuevo propietario
	 */
	private JTextField txtCedula;
	/**
	 * campo de texto para la direccion del nuevo propietario
	 */
	private JTextField txtDireccion;
	/**
	 * campo de texto para el telefono del nuevo propietario
	 */
	private JTextField txtTelefono;
	/**
	 * relacion con la interfaz Principal 
	 */
	private InterfazClinica principal;
	
	/**
	 * constructor del dialgo crear Propietario
	 * @param ventana Interfaz principal
	 */
	public DialogoCrearPropietario(InterfazClinica ventana) {
		
		super(ventana, true);
		principal = ventana;
		
		setTitle("Agregar Propietario");
		setBounds(100, 100, 450, 225);
		getContentPane().setLayout(new BorderLayout());
		panelContenido.setBorder(new EmptyBorder(5, 5, 5, 5));
		getContentPane().add(panelContenido, BorderLayout.CENTER);
		panelContenido.setLayout(null);
		
		JLabel lblNombres = new JLabel("Nombres:");
		lblNombres.setBounds(10, 11, 62, 14);
		panelContenido.add(lblNombres);
		
		txtNombres = new JTextField();
		txtNombres.setBounds(82, 8, 342, 20);
		panelContenido.add(txtNombres);
		txtNombres.setColumns(10);
		
		JLabel lblApellidos = new JLabel("Apellidos: ");
		lblApellidos.setBounds(10, 42, 62, 14);
		panelContenido.add(lblApellidos);
		
		txtApellidos = new JTextField();
		txtApellidos.setBounds(82, 39, 342, 20);
		panelContenido.add(txtApellidos);
		txtApellidos.setColumns(10);
		
		JLabel lblCedula = new JLabel("Cedula: ");
		lblCedula.setBounds(10, 67, 46, 14);
		panelContenido.add(lblCedula);
		
		txtCedula = new JTextField();
		txtCedula.addKeyListener(this);
		txtCedula.setBounds(82, 70, 342, 20);
		panelContenido.add(txtCedula);
		txtCedula.setColumns(10);
		
		JLabel lblDireccion = new JLabel("Direccion: ");
		lblDireccion.setBounds(10, 101, 62, 14);
		panelContenido.add(lblDireccion);
		
		txtDireccion = new JTextField();
		txtDireccion.setBounds(82, 95, 342, 20);
		panelContenido.add(txtDireccion);
		txtDireccion.setColumns(10);
		
		JLabel lblTelefono = new JLabel("Telefono: ");
		lblTelefono.setBounds(10, 132, 62, 14);
		panelContenido.add(lblTelefono);
		
		txtTelefono = new JTextField();
		txtTelefono.setBounds(82, 129, 342, 20);
		panelContenido.add(txtTelefono);
		txtTelefono.setColumns(10);
		{
			JPanel panelBotones = new JPanel();
			panelBotones.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(panelBotones, BorderLayout.SOUTH);
			{
				JButton btnAgregar = new JButton("Agregar");
				btnAgregar.addActionListener(this);
				btnAgregar.setActionCommand(AGREGAR);
				panelBotones.add(btnAgregar);
				getRootPane().setDefaultButton(btnAgregar);
			}
			{
				JButton btnCancelar = new JButton("Cancelar");
				btnCancelar.addActionListener(this);
				btnCancelar.setActionCommand(CANCELAR);
				panelBotones.add(btnCancelar);
			}
		}
	}
	
	
	/**
	 * comprueba si una casilla de texto es nula o esta vacia
	 * @param j casilla de texto que se va a comprovar
	 * @return TRUE si no esta vacia y no es nula FALSE si el nula o vacia
	 */
	public boolean validacion(JTextField j)
	{
		boolean respuesta = true;
		if(j != null)
		{
			if(j.getText().equalsIgnoreCase(""))
			{
				respuesta = false;
			}
		}
		else
		{
			respuesta = false;
		}
		
		return respuesta;
	}

	/**
	 * agrega un nuevo Propietario 
	 * @param pIdentifiacion Identificacion del propietario
	 * @param pNombres nombres del propietario
	 * @param pApellidos apellidos del propietario
	 * @param pDireccion direcion del proyecto
	 * @param pTelofono telefono del proyecto
	 */
	public void agregarNuevoPropietario(String pIdentifiacion , String pNombres , String pApellidos , String pDireccion , String pTelofono)
	{
		
		principal.agregarNuevoPropietario(pIdentifiacion ,pNombres ,pApellidos , pDireccion ,  pTelofono);
	}


	/* (non-Javadoc)
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
	 */
	@Override
	public void actionPerformed(ActionEvent e) 
	{
		String comando = e.getActionCommand();
		if(comando.equals(AGREGAR))
		{
			boolean validacion = true;
			
			if(validacion(txtCedula)==false)
			{
				JOptionPane.showMessageDialog(null,"La cedula o Identifiacion no es valida !!","Error",JOptionPane.ERROR_MESSAGE);
				validacion = false;
			}
			if(validacion(txtNombres)==false)
			{
				JOptionPane.showMessageDialog(null,"Los Nombres no son validos !!","Error",JOptionPane.ERROR_MESSAGE);
				validacion = false;
			}
			if(validacion(txtApellidos)==false)
			{
				JOptionPane.showMessageDialog(null,"Los Apellidos no son validos !!","Error",JOptionPane.ERROR_MESSAGE);
				validacion = false;
			}
			if(validacion(txtDireccion)==false)
			{
				JOptionPane.showMessageDialog(null,"La Direccion no es valida !!","Error",JOptionPane.ERROR_MESSAGE);
				validacion = false;
			}
			if(validacion(txtTelefono)==false)
			{
				JOptionPane.showMessageDialog(null,"el Telefono  no es valido !!","Error",JOptionPane.ERROR_MESSAGE);
				validacion = false;
			}
			if(principal.buscarClientePorIdentificacion(txtCedula.getText())!=null)
			{
				JOptionPane.showMessageDialog(null, "El propietario ya esta registrado","Error",JOptionPane.ERROR_MESSAGE);
				validacion=false;
			}
			
			
			if(validacion==true)
			{
				agregarNuevoPropietario(txtCedula.getText(), txtNombres.getText(), txtApellidos.getText(), txtDireccion.getText(), txtTelefono.getText());
				dispose();
				JOptionPane.showMessageDialog(null, "Se ha Agregado un nuevo Propietario !!","Propietario Agregado",JOptionPane.INFORMATION_MESSAGE);
				
			}
			
			
		}
		if(comando.equals(CANCELAR));
		{
			dispose();
		}
		
	}


	@Override
	public void keyPressed(KeyEvent e) {
		
		
	}


	@Override
	public void keyReleased(KeyEvent e) {

		
	}


	@Override
	public void keyTyped(KeyEvent e) {
		
		if(e.getComponent().equals(txtCedula))
		{
			char car = e.getKeyChar();
			if(car < '0' || car > '9')e.consume();
		}
	}
}
